<?php

/**
 * Szám objektum
 * 
 * Példa:
 * <code>
 * $o->set(123);
 * </code>
 * kimenet: 123
 * 
 */
class XQL_Number extends XQL_Item
{
	/**
	 * Az objektum neve. Meg kell egyeznie egy sémának a nevével, amelyre illeszthető.
	 *
	 * @var string
	 */
	protected $objectName = 'number';
	
	/**
	 * Felépíti az osztályhoz tartozó sémát. Implementálása kötelező.
	 *
	 */
	protected function buildSchema()
	{
		$this->objectSchema = new XQL_NumberSchema();
	}
	
	/**
	 * Visszatér egy példánnyal ugyanebből az osztályból.
	 *
	 * @return XQL_Number
	 */
	public static function create()
	{
		return new XQL_Number();
	}
	
	/**
	 * Beállítja a szám objektum értékét. Ha nem kap paramétert,
	 * értéke 18446744073709551615 lesz (ez kedvez a LIMIT kitételnek).
	 *
	 * @param number $value
	 * @return XQL_Number Sajátmagával tér vissza
	 */
	public function set($value='18446744073709551615')
	{
		return parent::set($value);
	}
	
	/**
	 * Kizárólag ennek az objektumnak az értékével tér vissza. Implementációja
	 * kötelező. A további megvalósításokban ügyelni kell arra, hogy az egyes
	 * érték elemek akár olyan objektumok is lehetnek, amelyek string-ként
	 * térhetnek vissza (például más XQL_Object leszármazottak).
	 *
	 * @return string
	 */
	public function get()
	{
		return str_replace(',', '.', parent::get());
	}
	
}

?>